package fi.pakkanen.yarpg.item.trait;

/**
 * Interface for items that have a limited amount of charges and are consumed
 * after they have been used that many times.
 * 
 * @author Oliver Michels <oliver.michels@gmx.net>
 * 
 */
public interface Consumable extends Triggerable {

	/**
	 * Reduce the amount of charges.
	 * 
	 * @return the remaining amount of charges
	 */
	public int reduceCharges();

	/**
	 * Get the remaining amount of charges.
	 * 
	 * @return the remaining amount of charges
	 */
	public int getRemainingCharges();

	/**
	 * Check whether this item is consumed and has no charges left.
	 * 
	 * @return true when there are no charges left, false otherwise
	 */
	public boolean isConsumed();

}
